Fix discrepancy between host vs target "std" feature #48
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
derive(Decode)was incorrectly looking at whether the "std" feature is enabled in the host platform to decide on how to generate decoding code. This is not correct. When using the Cargo v2 feature resolver (edition 2021+), or when using the v1 feature resolver and cross-compiling, it can happen that "std" is enabled in the host platform and not enabled in the target platform, leading to generated code that does not compile.The std- and alloc-related generated code needs to depend on whether "std" is enabled in the target platform.
Repro:
cargo check --target x86_64-unknown-nonepreviously failed like this, because the std feature on the host platform was being applied improperly against generated code built for the target platform.